home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / sparc / include / asm / backoff.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  514 b   |  32 lines

  1. #ifndef _SPARC64_BACKOFF_H
  2. #define _SPARC64_BACKOFF_H
  3.  
  4. #define BACKOFF_LIMIT    (4 * 1024)
  5.  
  6. #ifdef CONFIG_SMP
  7.  
  8. #define BACKOFF_SETUP(reg)    \
  9.     mov    1, reg
  10.  
  11. #define BACKOFF_SPIN(reg, tmp, label)    \
  12.     mov    reg, tmp; \
  13. 88:    brnz,pt    tmp, 88b; \
  14.      sub    tmp, 1, tmp; \
  15.     set    BACKOFF_LIMIT, tmp; \
  16.     cmp    reg, tmp; \
  17.     bg,pn    %xcc, label; \
  18.      nop; \
  19.     ba,pt    %xcc, label; \
  20.      sllx    reg, 1, reg;
  21.  
  22. #else
  23.  
  24. #define BACKOFF_SETUP(reg)
  25. #define BACKOFF_SPIN(reg, tmp, label) \
  26.     ba,pt    %xcc, label; \
  27.      nop;
  28.  
  29. #endif
  30.  
  31. #endif /* _SPARC64_BACKOFF_H */
  32.